package cn.itsource.pethome_0310.basic.domain;

import cn.itsource.pethome_0310.org.domain.Department;
import lombok.Data;

import java.util.List;

/**
 * @desc 统一返回结果集
 * @author wujiangbo
 * @date 2022/5/13 14:32
 */
@Data
public class JSONResult  {
    //接口状态（true：成功；false：失败）
    private Boolean success = true;

    //成功统一返回0000，其余编码全部是错误码
    private String code = "0000";

    //返回前端的提示信息（成功）
    private String message = "成功";

    //没有指定错误码时，统一返回这个错误码
    private static String errorCode = "9999";

    //返回前端的提示信息（失败）
    private static String errorMessage = "失败";

    //存储返回给前端的数据
    private Object data;

    //创建当前实例（成功）
    public static JSONResult success(){
        return new JSONResult();
    }

    //创建当前实例（成功），并设置数据返回
    public static JSONResult success(Object obj){
        JSONResult instance = new JSONResult();
        instance.setData(obj);
        return instance;
    }

    //创建当前实例（成功），并设置数据和状态码返回
    public static JSONResult success(Object obj, String code){
        JSONResult instance = new JSONResult();
        instance.setCode(code);
        instance.setData(obj);
        return instance;
    }

    //创建当前实例（失败）
    public static JSONResult error(){
        JSONResult instance = new JSONResult();
        instance.setCode(errorCode);//9999
        instance.setSuccess(false);
        instance.setMessage(errorMessage);
        return instance;
    }

    //创建当前实例（失败）  1111  请登录
    public static JSONResult error(String code, String message){
        JSONResult instance = new JSONResult();
        instance.setCode(code);
        instance.setSuccess(false);
        instance.setMessage(message);
        return instance;
    }

    //创建当前实例（失败），并返回指定错误信息
    public static JSONResult error(String message){
        JSONResult instance = new JSONResult();
        instance.setCode(errorCode);
        instance.setSuccess(false);
        instance.setMessage(message);
        return instance;
    }

    //创建当前实例（失败），并返回指定错误信息和数据
    public static JSONResult error(String message, Object obj){
        JSONResult instance = new JSONResult();
        instance.setCode(errorCode);
        instance.setSuccess(false);
        instance.setMessage(message);
        instance.setData(obj);
        return instance;
    }
}